1. Field of the Invention
This invention relates to peripherals controllers and more specifically to a disk array controller that provides two different messaging units.
2. Description of the Related Art
Servers are critical components of a computer network as their efficiency and reliability directly impact the efficiency and reliability of the computer network as a whole. Servers have typically been utilized to provide access to shared printers and files. As a general rule, a computer network has multiple file servers which have traditionally been used as storage hubs for various files. In a typical application, a copy of a stored file is transferred to a client on demand with an updated file being returned to the server for storage. As a result of on-demand file transfer, any delay in accessing files on a disk subsystem directly affects the efficiency of the network.
The requirement for high performance efficient networks has led to advances in disk drives and in disk subsystem architectures. Disk drive storage sizes have increased, access times have decreased, and data transfer rates have increased. However, while disk drive technology has advanced, processing capabilities of personal computers and workstations have also advanced. As more clients are added to a given network and the processing capability of those clients increase, there is a continuing push to further enhance the performance of disk subsystems servicing that network.
In response to the need for reliable inexpensive disk drive subsystems, redundant array of inexpensive disks (RAID) configurations have been developed. RAID implementations can provide error detection and duplicate storage of information on a disk drive subsystem in the event one or more disk drives in the disk drive subsystem fail. Some of the advantages provided by RAID subsystems have been higher data transfer rates, increased disk capacity, higher input/output (I/O) rates, and faster data access. Depending upon which level of RAID was implemented, disk striping, mirroring, parity checking, or some combination was employed. For example, RAID level 4 implements block interleaved data striping with parity checking, with parity information being stored on a single disk drive. In contrast, RAID level 5 strips both data and parity information across multiple disk drives. These RAID implementations and others are well known to those of ordinary skill in the art.
In further response to increased demand for reduction of bottlenecks encountered when performing I/O operations, the industry has sought to develop new I/O architectures. One such I/O architecture is known as Intelligent I/O (I2O). I2O is a relatively new I/O architecture which attempts to reduce I/O bottlenecks through the use of special I/O processors. The I/O processors perform tasks which include interrupt handling, data transfer, and buffering. The tasks performed by the I/O processors free a host processor to perform other tasks thus increasing a computer systems' efficiency. A primary objective of I2O was to provide an I/O device driver architecture that was independent of both the I/O device and the host operating system (OS).
To achieve this objective, a typical I2O driver consists of an operating system specific module (OSM) and a hardware device module (HDM). The OSM and HDM are autonomous and can perform independent tasks without sending data over a system I/O bus. The HDM and OSM interface with each other through a communication system comprised of a message layer and a transport layer. This communication system is similar to a connection oriented networking protocol. In a connection oriented network protocol two parties interested in exchanging information utilize a message layer to set-up a connection and to exchange control information and data.
In the I2O model, the message layer sets up a communication session between the HDM and the OSM and the transport layer defines how the HDM and the OSM share information. Similar to many standard communication protocols, the message layer resides on the transport layer. In a typical application, when the OSM is presented with a request from a host OS it translates the request into an I2O message and dispatches it to the appropriate HDM for processing. When the HDM has completed the request it dispatches the result back to the OSM by sending a message through the I2O message layer.
In the I2O environment RAID controller functionality may be implemented through a device driver module (DDM) or with an intermediate service module (ISM). As in a typical I2O environment, RAID module functions are performed independent of the OS, type of processor or bus (whether local or system). In the current I2O environment, DMA is utilized in the movement of data but not in command movement.
Other methods of transferring commands from a host processor to a peripheral controller are known to those of ordinary skill in the art. For example, a method of command passing between a host processor and a disk array controller is discussed in "DISK ARRAY CONTROLLER HAVING COMMAND DESCRIPTOR BLOCKS UTILIZED BY BUS MASTER AND BUS SLAVE FOR RESPECTIVELY PERFORMING DATA TRANSFER OPERATIONS" by Chadler et al. U.S. Pat. No. 5,448,709, assigned to the assignee of the present invention which is hereby incorporated by reference.
For various reasons, the ability to upgrade being one such reason, having an I/O device controller that is compatible with multiple architectures is often desirable. Disk drive controllers with selectable interfaces, for compatibility with multiple architectures, are known in the art. One example of such a configurable drive interface can be found in "MODE-SELECTABLE INTEGRATED DISK DRIVE FOR COMPUTER" by Bush et al. U.S. Pat. No. 5,150,465, assigned to the assignee of the present invention which is hereby incorporated by reference.